////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) Microsoft Corporation.  All rights reserved.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef _CRYPTOINTERFACE_H_
#define _CRYPTOINTERFACE_H_

#include "TinyBooter.h"

////////////////////////////////////////////////////////////////////////////////////////////////////

class CryptoState
{
private:
    UINT32        m_dataAddress;
    UINT32        m_dataLength;
    BYTE*         m_sig;
    UINT32        m_sigLength;
    UINT32        m_sectorType;
    void*         m_handle;
    
    CRYPTO_RESULT m_res;

    //--//

public:
     CryptoState( UINT32 dataAddress, UINT32 dataLength, BYTE* sig, UINT32 sigLength, UINT32 sectorType );
     ~CryptoState();
    
    bool VerifySignature( UINT32 keyIndex ); 
};

//--//

bool VerifySignature( CryptoState& st );

#endif // _CRYPTOINTERFACE_H_
